create procedure tda.editarTienda(@tiendaDT as tda.DTtienda readonly, 
@servicioXtiendaDT as tda.DTservicioXtienda readonly, @error int output,
@mensajeError nvarchar(200) output) as
begin try
	begin transaction;

	declare @nombre varchar(40), @direccion varchar(60), @telefono varchar(12), @idEstado int;
	declare @id int, @idAdministrador int, @idTienda int;
	set @nombre =(select nombre from @tiendaDT);
	set @direccion =(select direccion from @tiendaDT);
	set @telefono = (select telefono from @tiendaDT);
	set @idEstado =(select idEstado from @tiendaDT);
	set @idTienda =(select idTienda from @tiendaDT);
	set @idAdministrador=(select idAdministrador from @tiendaDT);

	update tienda set nombre=@nombre, direccion=@direccion , telefono=@telefono ,
	idEstado=@idEstado, idAdministrador=@idAdministrador
      	where idTienda = @idTienda ;
	
/*	
	delete from servicioXtienda where idTienda= @idTienda ;
	
	--Los campos de la tabla insert y del select deben estar en el mismo orden de relacion.
	insert into servicioXtienda(idTienda, idServicio)
	select idTienda,idServicio from @servicioXtiendaDT;
*/
	
	commit transaction;
	set @error=0;
end try
begin catch
	rollback transaction
	set @error=(select ERROR_NUMBER());
	set @mensajeError=(select ERROR_MESSAGE());
end catch
go


--prueba1
declare @servicioXtiendaDT eddu.DTservicioXtienda;
declare @tiendaDT  eddu.DTtienda;

insert into @tiendaDT(idTienda, nombre) values(2,'El paso');

insert into @servicioXtiendaDT(idTienda,idServicio)
values(2,1),(2,2),(2,3);

select idTienda, idTipoServicio, idServicio from @servicioXtiendaDT;

begin transaction;
delete from servicioXtienda where idTienda= (select idTienda from @tiendaDT);
	
insert into servicioXtienda(idTienda,idServicio)
select idTienda,idServicio from @servicioXtiendaDT;
commit transaction;






--prueba2

declare @servicioXtiendaDT eddu.DTservicioXtienda;
declare @tiendaDT  eddu.DTtienda;
declare @error int;
declare @mensajeError varchar(40);

insert into @servicioXtiendaDT(idTienda,idServicio)
values(2,1),(2,2),(2,3);

insert into @tiendaDT(idTienda,nombre) values(2,'La prueba');

exec dbo.editarTienda @tiendaDT, @servicioXtiendaDT, @error , @mensajeError;